הרצאות 1-3 - אנליזה של אלגוריתמים, נוסחאות נסיגה

מודל ה-RAM:

for j = 1 to A.length - 1
	key <- A[j]
	i <- j-1
	while i >= 0 and A[j] > key
		A[i+1] <- A[i]
		i <- i-1
		A[i+1] <- key
cost times
c1 n
c2 n-1
c3 n-1
c4 j=1n1tj
c5 j=1n1tj1
c6 j=1n1tj1
c7 n-1
T(n)=c1n+c2(n1)+c3(n1)+c4(n(n+1)21)+c5(n(n1)2)+c6(n(n1)2)+c7(n1)=(c42+c52+c62)n2+(c1+c2+c3+c42c52c62+c7)n(c2+c3+c4+c7)=an2+bnc

- הערה: ניתוח האלגוריתמים הוא לא תלוי מחשב ומתעלם מהחומר אלא כמספר הפעולות האלמנטריות המבוצעות.

ריצה בשאיפה לאינסוף:

נוסחאות נסיגה:

T(n)={1if n=1T(n1)+1if n>1

\begin{aligned}
T(n) &= 2T(n/2) + n \
&= 2\left(\frac{n}{2} \log \frac{n}{2} + \frac{n}{2}\right) + n \quad \text{(by the induction hypothesis)} \
&= n \log \frac{n}{2} + n + n \
&= n \log n - n \log 2 + n + n \
&= n \log n - n + n + n \
&= n \log n + n
\end{aligned}
\end

שיטתהאיטרציה:נפתחאתהנסיגהמספרפעמיםכדילקבלאתהאינטואיציהשלה(בדומהלרקורסיה).האינטואיציהתאפשרלנוליצרנוסחאלמצבהנסיגהלאחרKפתיחות.נוכיחאתנכונותהנוסחאבאינדוקציה.נסכום.לדוגמא:הנסיגה:$T(n)={1if n=1T(n1)+nif n>1$איטרציה,אינדוקציה,וסכימה:

\begin{gathered}
\begin{aligned}
T(n) &= T(n-1) + n \
&= T(n-2) + (n-1) + n \
&= T(n-3) + (n-2) + (n-1) + n \
&\quad \vdots \
&= T(n-k) + (n-k+1) + (n-k+2) + \dots + n \
&\quad \text{(proved using induction)} \
&= 1 + 2 + \dots + n \quad (\text{take } k = n - 1) \[10pt]
&= \frac{n(n+1)}{2}
\end{aligned}
\end

שיטתההחלפה:אםאנחנומעונייניםרקבהתנהגותהאסימפטוטית,ניתןלפשטאתהביטוייםהאלמנטריםשלהנסיגה.לדוגמא:נוסחאותהנסיגה:

\begin{gathered}
T(n) = \begin{cases}
1 & \text{if } n = 1 \
T(n-1) + n & \text{if } n > 1
\end{cases} \[25pt]

T_2(n) = \begin{cases}
\color{red}{2} & \text{if } n = 1 \
T_2(n-1) + \color{red}{n + 2\sqrt{n}} & \text{if } n > 1
\end{cases} \[25pt]
\end

נרצהלהראותכילכלnמתקיים:$T(n)T2(n)3T(n)$מאיהשיוויוןנובעכי$T2(n)Θ(T(n))$עבורהדוגמא,נתוןכי$T(n)Θ(n2)$(אךבמקרהאחרנצטרךלהוכיח).נוכיחבאינדוקציהאתנכונותאיהשיוון:צעדהבסיס:$n=1:T2(1)=23T(1)=3$צעדהאינדוקציה:

\begin{gathered}
\begin{aligned}
T_2(n) &= T_2(n-1) + n + 2\sqrt{n} \
&\overset{\text{i.h.}}{\leq} 3T(n-1) + n + 2\sqrt{n} \
&\leq 3T(n-1) + 3n \
&= 3T(n).
\end{aligned} \[25pt]
\end

הוכחנואתאיהשיווןהימני,גםאתהשמאליצריךלהוכיח,ואפשרלעשותזאתבצורהדומה.שיטתעץהריקורסיה:בשיטהזואנחנופותחיםאתנוסחאתהנסיגהעדהבסיסכעץרקורסיבי.אםנכפילאתמספרשלביהעץבסכוםהפעולותבכלשלב,נמצאאתהסיבוכיותדוגמאלעץרקורסיבילאסימטרי:נוסחאתהנסיגה:$T(n)={1if n=1T(n/3)+T(2n/3)+nif n>1$![מבנינתוניםנסיגהעץרקורסיבילאסימטרי.jpg|center|350](/img/user/attachments/העץלאבאמתעוצרבT(n/9),אלאכאשרמגיעיםלמקרההבסיס.הפואנטההיאלהראותשצדשמאלשלהעץמגיעאליומהריותר.בכלשלבסךהפעולות=n.כאשרהצדהשמאלימגיעלמקרההבסיססךהפעולותיהיהבמקסימוםn.נדגיםאתהפיתוחשלמספרהצעדיםעבורהצדהשמאלי:$n3k=1n=3kk=log3n$נזכורשכדילהגיעלבסיסעצמו,נצטרךלהוסיף1:$1+log3n$באופןדומהניתןלהדגיםגםאתהפיתוחשלצדימין.נסכום:הצדהשמאלייוצרחסםתחתון,במינימוםנקבלכי$T(n)Θ(nlog3n)$הצדהימנייוצרחסםעליון,במקסימוםנקבלכי$T(n)Θ(nlog3/2n)$מכאןשקיבלנוחסםהדוקש$T(n)Θ(nlogn)$שיטתהאב(mastertheorem):עובדתעבורנוסחאותנסיגהבצורת:$T(n)=aT(n/b)+f(n)$עבורצורהזו:$a1$,$b>1$ובנוסףf(n)צריכהלהיותפונקציהאסימפטוטיתחיובית.בהנחהותנאיםאלומתקיימים,נוכללהגידאתשלושתהטענותהבאות:1.אם$f(n)O(nlogbaϵ)$עבורקבוע$ϵ>0$אזנוכללהגידש:$T(n)Θ(nlogba)$2.אם$f(n)Θ(nlogba)$אזניתןלהגידש:$T(n)Θ(f(n)logn)$בצורהיותרכללית,אם$f(n)Θ(nlogbalogkn)$עבור$k0$נוכללהגידש:$T(n)Θ(f(n)logk+1n)$3.אם$f(n)Ω(nlogba+ϵ)$עבורקבוע$ϵ>0$ואם$af(n/b)cf(n)$עבורקבועc<1,וnגדולמספיק,אז$T(n)Θ(f(n))$תרגיללדוגמא:עבורהנסיגה$T(n)=9T(n/3)+n$נוכללראותש:a=9,b=3,f(n)=nנראהש:$logba=log39=2$מכך,ניתןלראותכיכלהתנאיםשלהטענההראשונהמתקיימים:$a=91,b=3>1,f(n)=n0$$ϵ=12,f(n)O(nlogbaϵ=O(n32))$מכך,נוכללהגידש:$T(n)Θ(nlogba)=Θ(n2)$

יש טעות או חומר חסר?

אשמח אם תשלחו לי תגובה ואוסיף!